package com.ciccwm.log.handler;

import com.ciccwm.log.model.LogRecord;
import com.ciccwm.log.util.JsonUtils;
import com.ciccwm.log.util.SensitiveUtils;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.springframework.stereotype.Component;

/**
 * 默认日志处理器
 * 提供基础的日志记录功能，包括参数格式化、敏感信息脱敏等
 */
@Slf4j
@Component
public class DefaultLogHandler implements LogHandler {

    @Override
    public void handle(ProceedingJoinPoint joinPoint, String[] maskFields, LogRecord record) {
        // 将LogRecord转换为JSON字符串
        String json = JsonUtils.toJson(record);
        // 对JSON字符串进行脱敏处理
        String desensitizedJson = SensitiveUtils.desensitize(json, maskFields);
        // 直接打印脱敏后的JSON
        log.info(desensitizedJson);
    }
} 